{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 线性回归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 一元线性回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3.15645915, 4.53030677, 2.66982264, 1.08928182, 8.68166479,\n",
       "       6.29728518, 3.52518708, 0.67537599, 6.26350592, 5.9866086 ,\n",
       "       0.92217251, 0.56851551, 2.371322  , 2.3540367 , 7.74371382,\n",
       "       0.42601131, 3.54695279, 4.69166604, 7.6757992 , 8.63516638,\n",
       "       7.77620476, 2.25900156, 7.60389215, 4.41385371, 2.17436735,\n",
       "       6.20251314, 1.4122351 , 0.88755181, 4.37561248, 2.89188192,\n",
       "       2.73069231, 5.49044754, 9.65158649, 6.92406344, 6.44791747,\n",
       "       7.25829272, 9.383001  , 0.47294471, 0.02190553, 3.46374663,\n",
       "       6.7797387 , 3.14115205, 7.83066568, 6.05550374, 1.12060886,\n",
       "       8.86877968, 3.42211267, 5.51175913, 8.15684753, 8.54537963])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#生成横坐标   范围 0 -10\n",
    "np.random.seed(420)\n",
    "x = np.random.rand(50) * 10 #50个点\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# y = 2x - 5\n",
    "#添加扰动项\n",
    "np.random.seed(420)\n",
    "y = 2 * x - 5 + np.random.randn(50) #正太分布下的随机数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 9.45193746, -0.75196533,  8.8524615 , -3.25807742,  3.72523216,\n",
       "        8.49075736, 14.50448801, 11.47208226, -0.3515297 , 11.72095947,\n",
       "       14.13949927, 13.99660226,  6.02697418,  9.10290632, 12.22990382,\n",
       "        6.86530228, -3.13099062, -3.7451036 , 12.13772886, 14.77892312,\n",
       "        0.51721731, 13.0512775 , -3.44845388,  4.61523415,  2.92996413,\n",
       "       12.46732656, -3.62314424,  1.06238391, -2.13413488,  5.43268062,\n",
       "       -3.10620363,  3.55249583,  4.56624302, -3.03696674, 14.0211885 ,\n",
       "        2.97848832, -1.42545738,  1.63265941, -4.99405707,  0.89003998,\n",
       "        9.94167884, -1.01292292,  2.8906765 , 10.89678148, -4.98264752,\n",
       "        5.79266851, 10.24555971, 10.77432007, 14.54307548,  6.62000929])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y#将对应的y计算出来"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1ba64d414f0>]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x,y,'o')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 导入线性回归模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "#实例化\n",
    "lr = LinearRegression(fit_intercept=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3.15645915, 4.53030677, 2.66982264, 1.08928182, 8.68166479,\n",
       "       6.29728518, 3.52518708, 0.67537599, 6.26350592, 5.9866086 ,\n",
       "       0.92217251, 0.56851551, 2.371322  , 2.3540367 , 7.74371382,\n",
       "       0.42601131, 3.54695279, 4.69166604, 7.6757992 , 8.63516638,\n",
       "       7.77620476, 2.25900156, 7.60389215, 4.41385371, 2.17436735,\n",
       "       6.20251314, 1.4122351 , 0.88755181, 4.37561248, 2.89188192,\n",
       "       2.73069231, 5.49044754, 9.65158649, 6.92406344, 6.44791747,\n",
       "       7.25829272, 9.383001  , 0.47294471, 0.02190553, 3.46374663,\n",
       "       6.7797387 , 3.14115205, 7.83066568, 6.05550374, 1.12060886,\n",
       "       8.86877968, 3.42211267, 5.51175913, 8.15684753, 8.54537963])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "x2 = x.reshape(-1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[3.15645915],\n",
       "       [4.53030677],\n",
       "       [2.66982264],\n",
       "       [1.08928182],\n",
       "       [8.68166479],\n",
       "       [6.29728518],\n",
       "       [3.52518708],\n",
       "       [0.67537599],\n",
       "       [6.26350592],\n",
       "       [5.9866086 ],\n",
       "       [0.92217251],\n",
       "       [0.56851551],\n",
       "       [2.371322  ],\n",
       "       [2.3540367 ],\n",
       "       [7.74371382],\n",
       "       [0.42601131],\n",
       "       [3.54695279],\n",
       "       [4.69166604],\n",
       "       [7.6757992 ],\n",
       "       [8.63516638],\n",
       "       [7.77620476],\n",
       "       [2.25900156],\n",
       "       [7.60389215],\n",
       "       [4.41385371],\n",
       "       [2.17436735],\n",
       "       [6.20251314],\n",
       "       [1.4122351 ],\n",
       "       [0.88755181],\n",
       "       [4.37561248],\n",
       "       [2.89188192],\n",
       "       [2.73069231],\n",
       "       [5.49044754],\n",
       "       [9.65158649],\n",
       "       [6.92406344],\n",
       "       [6.44791747],\n",
       "       [7.25829272],\n",
       "       [9.383001  ],\n",
       "       [0.47294471],\n",
       "       [0.02190553],\n",
       "       [3.46374663],\n",
       "       [6.7797387 ],\n",
       "       [3.14115205],\n",
       "       [7.83066568],\n",
       "       [6.05550374],\n",
       "       [1.12060886],\n",
       "       [8.86877968],\n",
       "       [3.42211267],\n",
       "       [5.51175913],\n",
       "       [8.15684753],\n",
       "       [8.54537963]])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 训练模型\n",
    "lr.fit(x2, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2.02606953])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.coef_ #斜率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-5.163803042721516"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.intercept_ #截距"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 将拟合好的直线画出来"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 生成绘制直线的横坐标\n",
    "xfit = np.linspace(0,10,100) #从0到10  生成100个"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.        ,  0.1010101 ,  0.2020202 ,  0.3030303 ,  0.4040404 ,\n",
       "        0.50505051,  0.60606061,  0.70707071,  0.80808081,  0.90909091,\n",
       "        1.01010101,  1.11111111,  1.21212121,  1.31313131,  1.41414141,\n",
       "        1.51515152,  1.61616162,  1.71717172,  1.81818182,  1.91919192,\n",
       "        2.02020202,  2.12121212,  2.22222222,  2.32323232,  2.42424242,\n",
       "        2.52525253,  2.62626263,  2.72727273,  2.82828283,  2.92929293,\n",
       "        3.03030303,  3.13131313,  3.23232323,  3.33333333,  3.43434343,\n",
       "        3.53535354,  3.63636364,  3.73737374,  3.83838384,  3.93939394,\n",
       "        4.04040404,  4.14141414,  4.24242424,  4.34343434,  4.44444444,\n",
       "        4.54545455,  4.64646465,  4.74747475,  4.84848485,  4.94949495,\n",
       "        5.05050505,  5.15151515,  5.25252525,  5.35353535,  5.45454545,\n",
       "        5.55555556,  5.65656566,  5.75757576,  5.85858586,  5.95959596,\n",
       "        6.06060606,  6.16161616,  6.26262626,  6.36363636,  6.46464646,\n",
       "        6.56565657,  6.66666667,  6.76767677,  6.86868687,  6.96969697,\n",
       "        7.07070707,  7.17171717,  7.27272727,  7.37373737,  7.47474747,\n",
       "        7.57575758,  7.67676768,  7.77777778,  7.87878788,  7.97979798,\n",
       "        8.08080808,  8.18181818,  8.28282828,  8.38383838,  8.48484848,\n",
       "        8.58585859,  8.68686869,  8.78787879,  8.88888889,  8.98989899,\n",
       "        9.09090909,  9.19191919,  9.29292929,  9.39393939,  9.49494949,\n",
       "        9.5959596 ,  9.6969697 ,  9.7979798 ,  9.8989899 , 10.        ])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xfit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "xfit2 = xfit.reshape(-1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "yfit = lr.predict(xfit2) #预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1ba679ded90>]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画出点的直线\n",
    "plt.plot(xfit,yfit)\n",
    "#画出原来训练集的点\n",
    "plt.plot(x,y,'o')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 加利福尼亚房价预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.datasets import fetch_california_housing #加利福尼亚房屋价值数据集\n",
    "import pandas as pd "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 下载数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "housevalue = fetch_california_housing() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': array([[   8.3252    ,   41.        ,    6.98412698, ...,    2.55555556,\n",
       "           37.88      , -122.23      ],\n",
       "        [   8.3014    ,   21.        ,    6.23813708, ...,    2.10984183,\n",
       "           37.86      , -122.22      ],\n",
       "        [   7.2574    ,   52.        ,    8.28813559, ...,    2.80225989,\n",
       "           37.85      , -122.24      ],\n",
       "        ...,\n",
       "        [   1.7       ,   17.        ,    5.20554273, ...,    2.3256351 ,\n",
       "           39.43      , -121.22      ],\n",
       "        [   1.8672    ,   18.        ,    5.32951289, ...,    2.12320917,\n",
       "           39.43      , -121.32      ],\n",
       "        [   2.3886    ,   16.        ,    5.25471698, ...,    2.61698113,\n",
       "           39.37      , -121.24      ]]),\n",
       " 'target': array([4.526, 3.585, 3.521, ..., 0.923, 0.847, 0.894]),\n",
       " 'frame': None,\n",
       " 'target_names': ['MedHouseVal'],\n",
       " 'feature_names': ['MedInc',\n",
       "  'HouseAge',\n",
       "  'AveRooms',\n",
       "  'AveBedrms',\n",
       "  'Population',\n",
       "  'AveOccup',\n",
       "  'Latitude',\n",
       "  'Longitude'],\n",
       " 'DESCR': '.. _california_housing_dataset:\\n\\nCalifornia Housing dataset\\n--------------------------\\n\\n**Data Set Characteristics:**\\n\\n    :Number of Instances: 20640\\n\\n    :Number of Attributes: 8 numeric, predictive attributes and the target\\n\\n    :Attribute Information:\\n        - MedInc        median income in block\\n        - HouseAge      median house age in block\\n        - AveRooms      average number of rooms\\n        - AveBedrms     average number of bedrooms\\n        - Population    block population\\n        - AveOccup      average house occupancy\\n        - Latitude      house block latitude\\n        - Longitude     house block longitude\\n\\n    :Missing Attribute Values: None\\n\\nThis dataset was obtained from the StatLib repository.\\nhttp://lib.stat.cmu.edu/datasets/\\n\\nThe target variable is the median house value for California districts.\\n\\nThis dataset was derived from the 1990 U.S. census, using one row per census\\nblock group. A block group is the smallest geographical unit for which the U.S.\\nCensus Bureau publishes sample data (a block group typically has a population\\nof 600 to 3,000 people).\\n\\nIt can be downloaded/loaded using the\\n:func:`sklearn.datasets.fetch_california_housing` function.\\n\\n.. topic:: References\\n\\n    - Pace, R. Kelley and Ronald Barry, Sparse Spatial Autoregressions,\\n      Statistics and Probability Letters, 33 (1997) 291-297\\n'}"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "housevalue"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['MedInc',\n",
       " 'HouseAge',\n",
       " 'AveRooms',\n",
       " 'AveBedrms',\n",
       " 'Population',\n",
       " 'AveOccup',\n",
       " 'Latitude',\n",
       " 'Longitude']"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "housevalue.feature_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 特征解释\n",
    "# MedInc：该街区住户的收入中位数\n",
    "# HouseAge：该街区房屋使用年代的中位数\n",
    "# AveRooms：该街区平均的房间数目\n",
    "# AveBedrms：该街区平均的卧室数目\n",
    "# Population：街区人口\n",
    "# AveOccup：平均入住率\n",
    "# Latitude：街区的纬度\n",
    "# Longitude：街区的经度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "#将数据转成DataFrame\n",
    "X = pd.DataFrame(housevalue.data,columns=housevalue.feature_names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.3252</td>\n",
       "      <td>41.0</td>\n",
       "      <td>6.984127</td>\n",
       "      <td>1.023810</td>\n",
       "      <td>322.0</td>\n",
       "      <td>2.555556</td>\n",
       "      <td>37.88</td>\n",
       "      <td>-122.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8.3014</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6.238137</td>\n",
       "      <td>0.971880</td>\n",
       "      <td>2401.0</td>\n",
       "      <td>2.109842</td>\n",
       "      <td>37.86</td>\n",
       "      <td>-122.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7.2574</td>\n",
       "      <td>52.0</td>\n",
       "      <td>8.288136</td>\n",
       "      <td>1.073446</td>\n",
       "      <td>496.0</td>\n",
       "      <td>2.802260</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5.6431</td>\n",
       "      <td>52.0</td>\n",
       "      <td>5.817352</td>\n",
       "      <td>1.073059</td>\n",
       "      <td>558.0</td>\n",
       "      <td>2.547945</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.8462</td>\n",
       "      <td>52.0</td>\n",
       "      <td>6.281853</td>\n",
       "      <td>1.081081</td>\n",
       "      <td>565.0</td>\n",
       "      <td>2.181467</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20635</th>\n",
       "      <td>1.5603</td>\n",
       "      <td>25.0</td>\n",
       "      <td>5.045455</td>\n",
       "      <td>1.133333</td>\n",
       "      <td>845.0</td>\n",
       "      <td>2.560606</td>\n",
       "      <td>39.48</td>\n",
       "      <td>-121.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20636</th>\n",
       "      <td>2.5568</td>\n",
       "      <td>18.0</td>\n",
       "      <td>6.114035</td>\n",
       "      <td>1.315789</td>\n",
       "      <td>356.0</td>\n",
       "      <td>3.122807</td>\n",
       "      <td>39.49</td>\n",
       "      <td>-121.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20637</th>\n",
       "      <td>1.7000</td>\n",
       "      <td>17.0</td>\n",
       "      <td>5.205543</td>\n",
       "      <td>1.120092</td>\n",
       "      <td>1007.0</td>\n",
       "      <td>2.325635</td>\n",
       "      <td>39.43</td>\n",
       "      <td>-121.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20638</th>\n",
       "      <td>1.8672</td>\n",
       "      <td>18.0</td>\n",
       "      <td>5.329513</td>\n",
       "      <td>1.171920</td>\n",
       "      <td>741.0</td>\n",
       "      <td>2.123209</td>\n",
       "      <td>39.43</td>\n",
       "      <td>-121.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20639</th>\n",
       "      <td>2.3886</td>\n",
       "      <td>16.0</td>\n",
       "      <td>5.254717</td>\n",
       "      <td>1.162264</td>\n",
       "      <td>1387.0</td>\n",
       "      <td>2.616981</td>\n",
       "      <td>39.37</td>\n",
       "      <td>-121.24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20640 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "0      8.3252      41.0  6.984127   1.023810       322.0  2.555556     37.88   \n",
       "1      8.3014      21.0  6.238137   0.971880      2401.0  2.109842     37.86   \n",
       "2      7.2574      52.0  8.288136   1.073446       496.0  2.802260     37.85   \n",
       "3      5.6431      52.0  5.817352   1.073059       558.0  2.547945     37.85   \n",
       "4      3.8462      52.0  6.281853   1.081081       565.0  2.181467     37.85   \n",
       "...       ...       ...       ...        ...         ...       ...       ...   \n",
       "20635  1.5603      25.0  5.045455   1.133333       845.0  2.560606     39.48   \n",
       "20636  2.5568      18.0  6.114035   1.315789       356.0  3.122807     39.49   \n",
       "20637  1.7000      17.0  5.205543   1.120092      1007.0  2.325635     39.43   \n",
       "20638  1.8672      18.0  5.329513   1.171920       741.0  2.123209     39.43   \n",
       "20639  2.3886      16.0  5.254717   1.162264      1387.0  2.616981     39.37   \n",
       "\n",
       "       Longitude  \n",
       "0        -122.23  \n",
       "1        -122.22  \n",
       "2        -122.24  \n",
       "3        -122.25  \n",
       "4        -122.25  \n",
       "...          ...  \n",
       "20635    -121.09  \n",
       "20636    -121.21  \n",
       "20637    -121.22  \n",
       "20638    -121.32  \n",
       "20639    -121.24  \n",
       "\n",
       "[20640 rows x 8 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = housevalue.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4.526, 3.585, 3.521, ..., 0.923, 0.847, 0.894])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 拆分数据集（训练集和测试集）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "Xtrain,Xtest,Ytrain,Ytest = train_test_split(X,y,test_size=0.3,random_state=420)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>17073</th>\n",
       "      <td>4.1776</td>\n",
       "      <td>35.0</td>\n",
       "      <td>4.425172</td>\n",
       "      <td>1.030683</td>\n",
       "      <td>5380.0</td>\n",
       "      <td>3.368817</td>\n",
       "      <td>37.48</td>\n",
       "      <td>-122.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16956</th>\n",
       "      <td>5.3261</td>\n",
       "      <td>38.0</td>\n",
       "      <td>6.267516</td>\n",
       "      <td>1.089172</td>\n",
       "      <td>429.0</td>\n",
       "      <td>2.732484</td>\n",
       "      <td>37.53</td>\n",
       "      <td>-122.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20012</th>\n",
       "      <td>1.9439</td>\n",
       "      <td>26.0</td>\n",
       "      <td>5.768977</td>\n",
       "      <td>1.141914</td>\n",
       "      <td>891.0</td>\n",
       "      <td>2.940594</td>\n",
       "      <td>36.02</td>\n",
       "      <td>-119.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13072</th>\n",
       "      <td>2.5000</td>\n",
       "      <td>22.0</td>\n",
       "      <td>4.916000</td>\n",
       "      <td>1.012000</td>\n",
       "      <td>733.0</td>\n",
       "      <td>2.932000</td>\n",
       "      <td>38.57</td>\n",
       "      <td>-121.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8457</th>\n",
       "      <td>3.8250</td>\n",
       "      <td>34.0</td>\n",
       "      <td>5.036765</td>\n",
       "      <td>1.098039</td>\n",
       "      <td>1134.0</td>\n",
       "      <td>2.779412</td>\n",
       "      <td>33.91</td>\n",
       "      <td>-118.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10394</th>\n",
       "      <td>4.7981</td>\n",
       "      <td>16.0</td>\n",
       "      <td>6.408537</td>\n",
       "      <td>1.067073</td>\n",
       "      <td>1003.0</td>\n",
       "      <td>3.057927</td>\n",
       "      <td>33.54</td>\n",
       "      <td>-117.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1209</th>\n",
       "      <td>2.3816</td>\n",
       "      <td>16.0</td>\n",
       "      <td>6.055954</td>\n",
       "      <td>1.120516</td>\n",
       "      <td>1516.0</td>\n",
       "      <td>2.175036</td>\n",
       "      <td>38.15</td>\n",
       "      <td>-120.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14254</th>\n",
       "      <td>1.7500</td>\n",
       "      <td>25.0</td>\n",
       "      <td>3.912500</td>\n",
       "      <td>1.029167</td>\n",
       "      <td>1003.0</td>\n",
       "      <td>4.179167</td>\n",
       "      <td>32.71</td>\n",
       "      <td>-117.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19059</th>\n",
       "      <td>3.5647</td>\n",
       "      <td>33.0</td>\n",
       "      <td>5.423358</td>\n",
       "      <td>1.058394</td>\n",
       "      <td>781.0</td>\n",
       "      <td>2.850365</td>\n",
       "      <td>38.22</td>\n",
       "      <td>-122.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11185</th>\n",
       "      <td>5.0599</td>\n",
       "      <td>35.0</td>\n",
       "      <td>5.271429</td>\n",
       "      <td>0.985714</td>\n",
       "      <td>641.0</td>\n",
       "      <td>3.052381</td>\n",
       "      <td>33.83</td>\n",
       "      <td>-117.95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14448 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "17073  4.1776      35.0  4.425172   1.030683      5380.0  3.368817     37.48   \n",
       "16956  5.3261      38.0  6.267516   1.089172       429.0  2.732484     37.53   \n",
       "20012  1.9439      26.0  5.768977   1.141914       891.0  2.940594     36.02   \n",
       "13072  2.5000      22.0  4.916000   1.012000       733.0  2.932000     38.57   \n",
       "8457   3.8250      34.0  5.036765   1.098039      1134.0  2.779412     33.91   \n",
       "...       ...       ...       ...        ...         ...       ...       ...   \n",
       "10394  4.7981      16.0  6.408537   1.067073      1003.0  3.057927     33.54   \n",
       "1209   2.3816      16.0  6.055954   1.120516      1516.0  2.175036     38.15   \n",
       "14254  1.7500      25.0  3.912500   1.029167      1003.0  4.179167     32.71   \n",
       "19059  3.5647      33.0  5.423358   1.058394       781.0  2.850365     38.22   \n",
       "11185  5.0599      35.0  5.271429   0.985714       641.0  3.052381     33.83   \n",
       "\n",
       "       Longitude  \n",
       "17073    -122.19  \n",
       "16956    -122.30  \n",
       "20012    -119.08  \n",
       "13072    -121.31  \n",
       "8457     -118.35  \n",
       "...          ...  \n",
       "10394    -117.67  \n",
       "1209     -120.46  \n",
       "14254    -117.10  \n",
       "19059    -122.49  \n",
       "11185    -117.95  \n",
       "\n",
       "[14448 rows x 8 columns]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Xtrain"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 线性回归建模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#训练数据\n",
    "lr.fit(Xtrain,Ytrain)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型评估"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### MSE均方误差"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- MSE趋于0效果越好"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import mean_squared_error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "#对训练集做预测\n",
    "y_pred =lr.predict(Xtrain)#得到预测结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.52185226625331"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 评估训练集集合情况  参数1:真实标签 参数2:预测标签\n",
    "mean_squared_error(Ytrain,y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test_pred = lr.predict(Xtest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5309012639324568"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mean_squared_error(Ytest,y_test_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 交叉验证"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr2 = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.52730876, -0.50816696, -0.48736401, -0.49269076, -0.56611205,\n",
       "       -0.53795641, -0.48253409, -0.5130032 , -0.53188562, -0.60443733])"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 交叉验证使用-MSE指标\n",
    "cross_val_score(lr2,Xtrain,Ytrain,cv=10,scoring='neg_mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['accuracy',\n",
       " 'adjusted_mutual_info_score',\n",
       " 'adjusted_rand_score',\n",
       " 'average_precision',\n",
       " 'balanced_accuracy',\n",
       " 'completeness_score',\n",
       " 'explained_variance',\n",
       " 'f1',\n",
       " 'f1_macro',\n",
       " 'f1_micro',\n",
       " 'f1_samples',\n",
       " 'f1_weighted',\n",
       " 'fowlkes_mallows_score',\n",
       " 'homogeneity_score',\n",
       " 'jaccard',\n",
       " 'jaccard_macro',\n",
       " 'jaccard_micro',\n",
       " 'jaccard_samples',\n",
       " 'jaccard_weighted',\n",
       " 'max_error',\n",
       " 'mutual_info_score',\n",
       " 'neg_brier_score',\n",
       " 'neg_log_loss',\n",
       " 'neg_mean_absolute_error',\n",
       " 'neg_mean_gamma_deviance',\n",
       " 'neg_mean_poisson_deviance',\n",
       " 'neg_mean_squared_error',\n",
       " 'neg_mean_squared_log_error',\n",
       " 'neg_median_absolute_error',\n",
       " 'neg_root_mean_squared_error',\n",
       " 'normalized_mutual_info_score',\n",
       " 'precision',\n",
       " 'precision_macro',\n",
       " 'precision_micro',\n",
       " 'precision_samples',\n",
       " 'precision_weighted',\n",
       " 'r2',\n",
       " 'recall',\n",
       " 'recall_macro',\n",
       " 'recall_micro',\n",
       " 'recall_samples',\n",
       " 'recall_weighted',\n",
       " 'roc_auc',\n",
       " 'roc_auc_ovo',\n",
       " 'roc_auc_ovo_weighted',\n",
       " 'roc_auc_ovr',\n",
       " 'roc_auc_ovr_weighted',\n",
       " 'v_measure_score']"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sklearn\n",
    "sorted(sklearn.metrics.SCORERS.keys())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.525145918217335"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(lr2,Xtrain,Ytrain,cv=10,scoring='neg_mean_squared_error').mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### MAE绝对均值误差"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "与MSE差不多，两个选一个用即可"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import mean_absolute_error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5309427617356017"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mean_absolute_error(Ytrain,y_pred) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.52722504, -0.52321403, -0.52579163, -0.52038755, -0.5431045 ,\n",
       "       -0.53622198, -0.5218329 , -0.53052166, -0.53266059, -0.55297171])"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 交叉验证使用-MAE指标\n",
    "cross_val_score(lr2,Xtrain,Ytrain,cv=10,scoring='neg_mean_absolute_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.5313931576388832"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(lr2,Xtrain,Ytrain,cv=10,scoring='neg_mean_absolute_error').mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### R方"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 方差是来衡量数据集包含了多少信息量\n",
    "- R方越趋于1拟合效果就越好，趋于0拟合效果越差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import r2_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6067440341875014"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r2_score(Ytrain,y_pred) #训练集R2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6043668160178819"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r2_score(Ytest,y_test_pred) #测试集R2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6067440341875014"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.score(Xtrain,Ytrain)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6043668160178819"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.score(Xtest,Ytest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.61759405, 0.63271089, 0.61770019, 0.61599307, 0.57902382,\n",
       "       0.59578732, 0.63348265, 0.60091314, 0.59964669, 0.54638642])"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(lr,Xtrain,Ytrain,cv=10,scoring='r2')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.603923823554634"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(lr,Xtrain,Ytrain,cv=10,scoring='r2').mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 查看模型系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 4.37358931e-01,  1.02112683e-02, -1.07807216e-01,  6.26433828e-01,\n",
       "        5.21612535e-07, -3.34850965e-03, -4.13095938e-01, -4.26210954e-01])"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.coef_ #训练结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-36.25689322920392"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('MedInc', 0.4373589305968402),\n",
       " ('HouseAge', 0.010211268294494062),\n",
       " ('AveRooms', -0.10780721617317704),\n",
       " ('AveBedrms', 0.6264338275363783),\n",
       " ('Population', 5.21612535300663e-07),\n",
       " ('AveOccup', -0.0033485096463335864),\n",
       " ('Latitude', -0.4130959378947715),\n",
       " ('Longitude', -0.4262109536208475)]"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(zip(X.columns,lr.coef_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 特征解释\n",
    "# MedInc：该街区住户的收入中位数\n",
    "# HouseAge：该街区房屋使用年代的中位数\n",
    "# AveRooms：该街区平均的房间数目\n",
    "# AveBedrms：该街区平均的卧室数目\n",
    "# Population：街区人口\n",
    "# AveOccup：平均入住率\n",
    "# Latitude：街区的纬度\n",
    "# Longitude：街区的经度"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 将数据集标准化之后再训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "std = StandardScaler()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [],
   "source": [
    "#对训练集进行标准化\n",
    "X_train_std = std.fit_transform(Xtrain)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.15962565,  0.51019125, -0.40038616, ...,  0.02097226,\n",
       "         0.86530441, -1.30925728],\n",
       "       [ 0.7616735 ,  0.74878657,  0.33049412, ..., -0.03103851,\n",
       "         0.88874515, -1.36422214],\n",
       "       [-1.01128797, -0.20559469,  0.1327176 , ..., -0.0140286 ,\n",
       "         0.180835  ,  0.24474943],\n",
       "       ...,\n",
       "       [-1.11293105, -0.28512647, -0.60376949, ...,  0.08720641,\n",
       "        -1.37094154,  1.23411704],\n",
       "       [-0.16165875,  0.35112771, -0.00439378, ..., -0.02140349,\n",
       "         1.21222727, -1.45916146],\n",
       "       [ 0.6221305 ,  0.51019125, -0.06466591, ..., -0.00489167,\n",
       "        -0.84586911,  0.80938852]])"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>17073</th>\n",
       "      <td>4.1776</td>\n",
       "      <td>35.0</td>\n",
       "      <td>4.425172</td>\n",
       "      <td>1.030683</td>\n",
       "      <td>5380.0</td>\n",
       "      <td>3.368817</td>\n",
       "      <td>37.48</td>\n",
       "      <td>-122.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16956</th>\n",
       "      <td>5.3261</td>\n",
       "      <td>38.0</td>\n",
       "      <td>6.267516</td>\n",
       "      <td>1.089172</td>\n",
       "      <td>429.0</td>\n",
       "      <td>2.732484</td>\n",
       "      <td>37.53</td>\n",
       "      <td>-122.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20012</th>\n",
       "      <td>1.9439</td>\n",
       "      <td>26.0</td>\n",
       "      <td>5.768977</td>\n",
       "      <td>1.141914</td>\n",
       "      <td>891.0</td>\n",
       "      <td>2.940594</td>\n",
       "      <td>36.02</td>\n",
       "      <td>-119.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13072</th>\n",
       "      <td>2.5000</td>\n",
       "      <td>22.0</td>\n",
       "      <td>4.916000</td>\n",
       "      <td>1.012000</td>\n",
       "      <td>733.0</td>\n",
       "      <td>2.932000</td>\n",
       "      <td>38.57</td>\n",
       "      <td>-121.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8457</th>\n",
       "      <td>3.8250</td>\n",
       "      <td>34.0</td>\n",
       "      <td>5.036765</td>\n",
       "      <td>1.098039</td>\n",
       "      <td>1134.0</td>\n",
       "      <td>2.779412</td>\n",
       "      <td>33.91</td>\n",
       "      <td>-118.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10394</th>\n",
       "      <td>4.7981</td>\n",
       "      <td>16.0</td>\n",
       "      <td>6.408537</td>\n",
       "      <td>1.067073</td>\n",
       "      <td>1003.0</td>\n",
       "      <td>3.057927</td>\n",
       "      <td>33.54</td>\n",
       "      <td>-117.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1209</th>\n",
       "      <td>2.3816</td>\n",
       "      <td>16.0</td>\n",
       "      <td>6.055954</td>\n",
       "      <td>1.120516</td>\n",
       "      <td>1516.0</td>\n",
       "      <td>2.175036</td>\n",
       "      <td>38.15</td>\n",
       "      <td>-120.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14254</th>\n",
       "      <td>1.7500</td>\n",
       "      <td>25.0</td>\n",
       "      <td>3.912500</td>\n",
       "      <td>1.029167</td>\n",
       "      <td>1003.0</td>\n",
       "      <td>4.179167</td>\n",
       "      <td>32.71</td>\n",
       "      <td>-117.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19059</th>\n",
       "      <td>3.5647</td>\n",
       "      <td>33.0</td>\n",
       "      <td>5.423358</td>\n",
       "      <td>1.058394</td>\n",
       "      <td>781.0</td>\n",
       "      <td>2.850365</td>\n",
       "      <td>38.22</td>\n",
       "      <td>-122.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11185</th>\n",
       "      <td>5.0599</td>\n",
       "      <td>35.0</td>\n",
       "      <td>5.271429</td>\n",
       "      <td>0.985714</td>\n",
       "      <td>641.0</td>\n",
       "      <td>3.052381</td>\n",
       "      <td>33.83</td>\n",
       "      <td>-117.95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14448 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "17073  4.1776      35.0  4.425172   1.030683      5380.0  3.368817     37.48   \n",
       "16956  5.3261      38.0  6.267516   1.089172       429.0  2.732484     37.53   \n",
       "20012  1.9439      26.0  5.768977   1.141914       891.0  2.940594     36.02   \n",
       "13072  2.5000      22.0  4.916000   1.012000       733.0  2.932000     38.57   \n",
       "8457   3.8250      34.0  5.036765   1.098039      1134.0  2.779412     33.91   \n",
       "...       ...       ...       ...        ...         ...       ...       ...   \n",
       "10394  4.7981      16.0  6.408537   1.067073      1003.0  3.057927     33.54   \n",
       "1209   2.3816      16.0  6.055954   1.120516      1516.0  2.175036     38.15   \n",
       "14254  1.7500      25.0  3.912500   1.029167      1003.0  4.179167     32.71   \n",
       "19059  3.5647      33.0  5.423358   1.058394       781.0  2.850365     38.22   \n",
       "11185  5.0599      35.0  5.271429   0.985714       641.0  3.052381     33.83   \n",
       "\n",
       "       Longitude  \n",
       "17073    -122.19  \n",
       "16956    -122.30  \n",
       "20012    -119.08  \n",
       "13072    -121.31  \n",
       "8457     -118.35  \n",
       "...          ...  \n",
       "10394    -117.67  \n",
       "1209     -120.46  \n",
       "14254    -117.10  \n",
       "19059    -122.49  \n",
       "11185    -117.95  \n",
       "\n",
       "[14448 rows x 8 columns]"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Xtrain"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr3 = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr3.fit(X_train_std,Ytrain)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6067440341875014"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr3.score(X_train_std,Ytrain)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 绘制拟合图像"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 绘制预测值的散点和真实值的直线进行对比\n",
    "- 如果两者趋势越接近（预测值的散点越靠近真实值）拟合效果优秀"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 因为数据是无序的，所以画出的点是乱的\n",
    "plt.scatter(range(len(Ytest)),Ytest,s=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.14999,\n",
       " 0.14999,\n",
       " 0.225,\n",
       " 0.325,\n",
       " 0.35,\n",
       " 0.375,\n",
       " 0.388,\n",
       " 0.392,\n",
       " 0.394,\n",
       " 0.396,\n",
       " 0.4,\n",
       " 0.404,\n",
       " 0.409,\n",
       " 0.41,\n",
       " 0.43,\n",
       " 0.435,\n",
       " 0.437,\n",
       " 0.439,\n",
       " 0.44,\n",
       " 0.44,\n",
       " 0.444,\n",
       " 0.446,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.455,\n",
       " 0.455,\n",
       " 0.455,\n",
       " 0.456,\n",
       " 0.462,\n",
       " 0.463,\n",
       " 0.471,\n",
       " 0.475,\n",
       " 0.478,\n",
       " 0.478,\n",
       " 0.481,\n",
       " 0.481,\n",
       " 0.483,\n",
       " 0.483,\n",
       " 0.485,\n",
       " 0.485,\n",
       " 0.488,\n",
       " 0.489,\n",
       " 0.49,\n",
       " 0.492,\n",
       " 0.494,\n",
       " 0.494,\n",
       " 0.494,\n",
       " 0.495,\n",
       " 0.496,\n",
       " 0.5,\n",
       " 0.5,\n",
       " 0.504,\n",
       " 0.505,\n",
       " 0.506,\n",
       " 0.506,\n",
       " 0.508,\n",
       " 0.508,\n",
       " 0.51,\n",
       " 0.516,\n",
       " 0.519,\n",
       " 0.52,\n",
       " 0.521,\n",
       " 0.523,\n",
       " 0.523,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.527,\n",
       " 0.527,\n",
       " 0.528,\n",
       " 0.529,\n",
       " 0.53,\n",
       " 0.531,\n",
       " 0.532,\n",
       " 0.534,\n",
       " 0.535,\n",
       " 0.535,\n",
       " 0.535,\n",
       " 0.538,\n",
       " 0.538,\n",
       " 0.539,\n",
       " 0.539,\n",
       " 0.539,\n",
       " 0.541,\n",
       " 0.541,\n",
       " 0.542,\n",
       " 0.542,\n",
       " 0.542,\n",
       " 0.543,\n",
       " 0.543,\n",
       " 0.544,\n",
       " 0.544,\n",
       " 0.546,\n",
       " 0.547,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.551,\n",
       " 0.553,\n",
       " 0.553,\n",
       " 0.553,\n",
       " 0.554,\n",
       " 0.554,\n",
       " 0.554,\n",
       " 0.555,\n",
       " 0.556,\n",
       " 0.556,\n",
       " 0.557,\n",
       " 0.558,\n",
       " 0.558,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.56,\n",
       " 0.56,\n",
       " 0.562,\n",
       " 0.566,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.568,\n",
       " 0.57,\n",
       " 0.571,\n",
       " 0.572,\n",
       " 0.574,\n",
       " 0.574,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.576,\n",
       " 0.577,\n",
       " 0.577,\n",
       " 0.577,\n",
       " 0.578,\n",
       " 0.579,\n",
       " 0.579,\n",
       " 0.579,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.582,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.584,\n",
       " 0.586,\n",
       " 0.586,\n",
       " 0.587,\n",
       " 0.588,\n",
       " 0.588,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.591,\n",
       " 0.591,\n",
       " 0.593,\n",
       " 0.593,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.595,\n",
       " 0.596,\n",
       " 0.596,\n",
       " 0.597,\n",
       " 0.598,\n",
       " 0.598,\n",
       " 0.6,\n",
       " 0.6,\n",
       " 0.6,\n",
       " 0.602,\n",
       " 0.602,\n",
       " 0.603,\n",
       " 0.604,\n",
       " 0.604,\n",
       " 0.604,\n",
       " 0.605,\n",
       " 0.606,\n",
       " 0.606,\n",
       " 0.608,\n",
       " 0.608,\n",
       " 0.608,\n",
       " 0.609,\n",
       " 0.609,\n",
       " 0.611,\n",
       " 0.612,\n",
       " 0.612,\n",
       " 0.613,\n",
       " 0.613,\n",
       " 0.613,\n",
       " 0.614,\n",
       " 0.615,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.618,\n",
       " 0.618,\n",
       " 0.618,\n",
       " 0.619,\n",
       " 0.619,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.621,\n",
       " 0.621,\n",
       " 0.621,\n",
       " 0.622,\n",
       " 0.623,\n",
       " 0.625,\n",
       " 0.625,\n",
       " 0.625,\n",
       " 0.627,\n",
       " 0.627,\n",
       " 0.628,\n",
       " 0.628,\n",
       " 0.629,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.631,\n",
       " 0.631,\n",
       " 0.632,\n",
       " 0.632,\n",
       " 0.633,\n",
       " 0.633,\n",
       " 0.633,\n",
       " 0.634,\n",
       " 0.634,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.638,\n",
       " 0.639,\n",
       " 0.643,\n",
       " 0.644,\n",
       " 0.644,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.647,\n",
       " 0.647,\n",
       " 0.647,\n",
       " 0.648,\n",
       " 0.65,\n",
       " 0.65,\n",
       " 0.65,\n",
       " 0.652,\n",
       " 0.652,\n",
       " 0.654,\n",
       " 0.654,\n",
       " 0.654,\n",
       " 0.655,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.657,\n",
       " 0.658,\n",
       " 0.658,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.66,\n",
       " 0.661,\n",
       " 0.661,\n",
       " 0.662,\n",
       " 0.662,\n",
       " 0.663,\n",
       " 0.664,\n",
       " 0.664,\n",
       " 0.664,\n",
       " 0.668,\n",
       " 0.669,\n",
       " 0.669,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.672,\n",
       " 0.672,\n",
       " 0.672,\n",
       " 0.673,\n",
       " 0.673,\n",
       " 0.674,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.676,\n",
       " 0.676,\n",
       " 0.677,\n",
       " 0.678,\n",
       " 0.68,\n",
       " 0.68,\n",
       " 0.681,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.683,\n",
       " 0.683,\n",
       " 0.683,\n",
       " 0.684,\n",
       " 0.684,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.686,\n",
       " 0.686,\n",
       " 0.687,\n",
       " 0.688,\n",
       " 0.689,\n",
       " 0.689,\n",
       " 0.689,\n",
       " 0.69,\n",
       " 0.69,\n",
       " 0.691,\n",
       " 0.691,\n",
       " 0.692,\n",
       " 0.693,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.695,\n",
       " 0.695,\n",
       " 0.695,\n",
       " 0.696,\n",
       " 0.696,\n",
       " 0.697,\n",
       " 0.698,\n",
       " 0.699,\n",
       " 0.699,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.701,\n",
       " 0.701,\n",
       " 0.701,\n",
       " 0.702,\n",
       " 0.702,\n",
       " 0.703,\n",
       " 0.704,\n",
       " 0.704,\n",
       " 0.705,\n",
       " 0.705,\n",
       " 0.706,\n",
       " 0.707,\n",
       " 0.707,\n",
       " 0.707,\n",
       " 0.708,\n",
       " 0.709,\n",
       " 0.71,\n",
       " 0.71,\n",
       " 0.71,\n",
       " 0.711,\n",
       " 0.712,\n",
       " 0.712,\n",
       " 0.713,\n",
       " 0.713,\n",
       " 0.713,\n",
       " 0.714,\n",
       " 0.715,\n",
       " 0.716,\n",
       " 0.718,\n",
       " 0.719,\n",
       " 0.72,\n",
       " 0.72,\n",
       " 0.72,\n",
       " 0.721,\n",
       " 0.722,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.725,\n",
       " 0.725,\n",
       " 0.727,\n",
       " 0.727,\n",
       " 0.728,\n",
       " 0.729,\n",
       " 0.729,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.732,\n",
       " 0.733,\n",
       " 0.733,\n",
       " 0.734,\n",
       " 0.735,\n",
       " 0.735,\n",
       " 0.737,\n",
       " 0.738,\n",
       " 0.738,\n",
       " 0.738,\n",
       " 0.74,\n",
       " 0.74,\n",
       " 0.74,\n",
       " 0.741,\n",
       " 0.741,\n",
       " 0.741,\n",
       " 0.743,\n",
       " 0.746,\n",
       " 0.746,\n",
       " 0.747,\n",
       " 0.748,\n",
       " 0.749,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.752,\n",
       " 0.752,\n",
       " 0.754,\n",
       " 0.756,\n",
       " 0.756,\n",
       " 0.757,\n",
       " 0.759,\n",
       " 0.759,\n",
       " 0.759,\n",
       " 0.76,\n",
       " 0.76,\n",
       " 0.761,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.763,\n",
       " 0.764,\n",
       " 0.764,\n",
       " 0.765,\n",
       " 0.766,\n",
       " 0.768,\n",
       " 0.769,\n",
       " 0.77,\n",
       " 0.771,\n",
       " 0.771,\n",
       " 0.771,\n",
       " 0.772,\n",
       " 0.772,\n",
       " 0.773,\n",
       " 0.774,\n",
       " 0.774,\n",
       " 0.775,\n",
       " 0.777,\n",
       " 0.777,\n",
       " 0.779,\n",
       " 0.78,\n",
       " 0.78,\n",
       " 0.78,\n",
       " 0.781,\n",
       " 0.783,\n",
       " 0.783,\n",
       " 0.785,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.79,\n",
       " 0.79,\n",
       " 0.79,\n",
       " 0.792,\n",
       " 0.792,\n",
       " 0.792,\n",
       " 0.795,\n",
       " 0.795,\n",
       " 0.795,\n",
       " 0.797,\n",
       " 0.797,\n",
       " 0.798,\n",
       " 0.799,\n",
       " 0.8,\n",
       " 0.801,\n",
       " 0.802,\n",
       " 0.803,\n",
       " 0.804,\n",
       " 0.804,\n",
       " 0.804,\n",
       " 0.806,\n",
       " 0.806,\n",
       " 0.808,\n",
       " 0.808,\n",
       " 0.808,\n",
       " 0.809,\n",
       " 0.81,\n",
       " 0.81,\n",
       " 0.811,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.814,\n",
       " 0.814,\n",
       " 0.816,\n",
       " 0.817,\n",
       " 0.817,\n",
       " 0.817,\n",
       " 0.821,\n",
       " 0.821,\n",
       " 0.821,\n",
       " 0.823,\n",
       " 0.823,\n",
       " 0.824,\n",
       " 0.825,\n",
       " 0.825,\n",
       " 0.825,\n",
       " 0.826,\n",
       " 0.827,\n",
       " 0.827,\n",
       " 0.828,\n",
       " 0.828,\n",
       " 0.828,\n",
       " 0.83,\n",
       " 0.83,\n",
       " 0.83,\n",
       " 0.831,\n",
       " 0.831,\n",
       " 0.831,\n",
       " 0.832,\n",
       " 0.832,\n",
       " 0.832,\n",
       " 0.833,\n",
       " 0.833,\n",
       " 0.834,\n",
       " 0.835,\n",
       " 0.835,\n",
       " 0.836,\n",
       " 0.836,\n",
       " 0.837,\n",
       " 0.838,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.84,\n",
       " 0.841,\n",
       " 0.842,\n",
       " 0.842,\n",
       " 0.842,\n",
       " 0.843,\n",
       " 0.843,\n",
       " 0.844,\n",
       " 0.844,\n",
       " 0.844,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.848,\n",
       " 0.849,\n",
       " 0.849,\n",
       " 0.85,\n",
       " 0.85,\n",
       " 0.85,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.852,\n",
       " 0.853,\n",
       " 0.853,\n",
       " 0.854,\n",
       " 0.854,\n",
       " 0.854,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.856,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.858,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.861,\n",
       " 0.862,\n",
       " 0.863,\n",
       " 0.863,\n",
       " 0.863,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.865,\n",
       " 0.865,\n",
       " 0.865,\n",
       " 0.866,\n",
       " 0.867,\n",
       " 0.867,\n",
       " 0.868,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.87,\n",
       " 0.87,\n",
       " 0.871,\n",
       " 0.871,\n",
       " 0.872,\n",
       " 0.872,\n",
       " 0.872,\n",
       " 0.873,\n",
       " 0.874,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.876,\n",
       " 0.876,\n",
       " 0.877,\n",
       " 0.877,\n",
       " 0.878,\n",
       " 0.878,\n",
       " 0.878,\n",
       " 0.879,\n",
       " 0.879,\n",
       " 0.879,\n",
       " 0.88,\n",
       " 0.88,\n",
       " 0.881,\n",
       " 0.881,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.884,\n",
       " 0.885,\n",
       " 0.885,\n",
       " 0.886,\n",
       " 0.887,\n",
       " 0.887,\n",
       " 0.887,\n",
       " 0.888,\n",
       " 0.888,\n",
       " 0.888,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.89,\n",
       " 0.891,\n",
       " 0.892,\n",
       " 0.892,\n",
       " 0.892,\n",
       " 0.893,\n",
       " 0.893,\n",
       " 0.894,\n",
       " 0.895,\n",
       " 0.896,\n",
       " 0.896,\n",
       " 0.897,\n",
       " 0.897,\n",
       " 0.898,\n",
       " 0.898,\n",
       " 0.899,\n",
       " 0.9,\n",
       " 0.9,\n",
       " 0.9,\n",
       " 0.901,\n",
       " 0.901,\n",
       " 0.901,\n",
       " 0.902,\n",
       " 0.903,\n",
       " 0.903,\n",
       " 0.904,\n",
       " 0.904,\n",
       " 0.904,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.907,\n",
       " 0.907,\n",
       " 0.908,\n",
       " 0.911,\n",
       " 0.911,\n",
       " 0.912,\n",
       " 0.914,\n",
       " 0.915,\n",
       " 0.915,\n",
       " 0.916,\n",
       " 0.916,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.918,\n",
       " 0.918,\n",
       " 0.918,\n",
       " 0.919,\n",
       " 0.919,\n",
       " 0.919,\n",
       " 0.92,\n",
       " 0.92,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.924,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.929,\n",
       " 0.93,\n",
       " 0.93,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.933,\n",
       " 0.933,\n",
       " 0.933,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.935,\n",
       " 0.935,\n",
       " 0.935,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.939,\n",
       " 0.939,\n",
       " 0.94,\n",
       " 0.94,\n",
       " 0.942,\n",
       " 0.942,\n",
       " 0.943,\n",
       " 0.943,\n",
       " 0.944,\n",
       " 0.944,\n",
       " 0.944,\n",
       " 0.945,\n",
       " 0.945,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.947,\n",
       " 0.947,\n",
       " 0.948,\n",
       " 0.948,\n",
       " 0.948,\n",
       " 0.949,\n",
       " 0.949,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.951,\n",
       " 0.952,\n",
       " 0.952,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.954,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.956,\n",
       " 0.957,\n",
       " 0.957,\n",
       " 0.957,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.961,\n",
       " 0.961,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.963,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.965,\n",
       " 0.965,\n",
       " 0.965,\n",
       " 0.966,\n",
       " 0.966,\n",
       " 0.966,\n",
       " 0.967,\n",
       " 0.967,\n",
       " 0.967,\n",
       " 0.968,\n",
       " 0.968,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.97,\n",
       " 0.971,\n",
       " 0.972,\n",
       " 0.972,\n",
       " 0.973,\n",
       " 0.973,\n",
       " 0.973,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.977,\n",
       " 0.977,\n",
       " 0.978,\n",
       " 0.978,\n",
       " 0.978,\n",
       " 0.979,\n",
       " 0.979,\n",
       " ...]"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sorted(Ytest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(range(len(Ytest)),sorted(Ytest),s=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.967, 0.616, 2.298, ..., 2.457, 1.875, 0.683])"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  预测值与真实值的对应关系  如何匹配？\n",
    "Ytest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.14999,\n",
       " 0.14999,\n",
       " 0.225,\n",
       " 0.325,\n",
       " 0.35,\n",
       " 0.375,\n",
       " 0.388,\n",
       " 0.392,\n",
       " 0.394,\n",
       " 0.396,\n",
       " 0.4,\n",
       " 0.404,\n",
       " 0.409,\n",
       " 0.41,\n",
       " 0.43,\n",
       " 0.435,\n",
       " 0.437,\n",
       " 0.439,\n",
       " 0.44,\n",
       " 0.44,\n",
       " 0.444,\n",
       " 0.446,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.45,\n",
       " 0.455,\n",
       " 0.455,\n",
       " 0.455,\n",
       " 0.456,\n",
       " 0.462,\n",
       " 0.463,\n",
       " 0.471,\n",
       " 0.475,\n",
       " 0.478,\n",
       " 0.478,\n",
       " 0.481,\n",
       " 0.481,\n",
       " 0.483,\n",
       " 0.483,\n",
       " 0.485,\n",
       " 0.485,\n",
       " 0.488,\n",
       " 0.489,\n",
       " 0.49,\n",
       " 0.492,\n",
       " 0.494,\n",
       " 0.494,\n",
       " 0.494,\n",
       " 0.495,\n",
       " 0.496,\n",
       " 0.5,\n",
       " 0.5,\n",
       " 0.504,\n",
       " 0.505,\n",
       " 0.506,\n",
       " 0.506,\n",
       " 0.508,\n",
       " 0.508,\n",
       " 0.51,\n",
       " 0.516,\n",
       " 0.519,\n",
       " 0.52,\n",
       " 0.521,\n",
       " 0.523,\n",
       " 0.523,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.525,\n",
       " 0.527,\n",
       " 0.527,\n",
       " 0.528,\n",
       " 0.529,\n",
       " 0.53,\n",
       " 0.531,\n",
       " 0.532,\n",
       " 0.534,\n",
       " 0.535,\n",
       " 0.535,\n",
       " 0.535,\n",
       " 0.538,\n",
       " 0.538,\n",
       " 0.539,\n",
       " 0.539,\n",
       " 0.539,\n",
       " 0.541,\n",
       " 0.541,\n",
       " 0.542,\n",
       " 0.542,\n",
       " 0.542,\n",
       " 0.543,\n",
       " 0.543,\n",
       " 0.544,\n",
       " 0.544,\n",
       " 0.546,\n",
       " 0.547,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.55,\n",
       " 0.551,\n",
       " 0.553,\n",
       " 0.553,\n",
       " 0.553,\n",
       " 0.554,\n",
       " 0.554,\n",
       " 0.554,\n",
       " 0.555,\n",
       " 0.556,\n",
       " 0.556,\n",
       " 0.557,\n",
       " 0.558,\n",
       " 0.558,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.559,\n",
       " 0.56,\n",
       " 0.56,\n",
       " 0.562,\n",
       " 0.566,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.567,\n",
       " 0.568,\n",
       " 0.57,\n",
       " 0.571,\n",
       " 0.572,\n",
       " 0.574,\n",
       " 0.574,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.575,\n",
       " 0.576,\n",
       " 0.577,\n",
       " 0.577,\n",
       " 0.577,\n",
       " 0.578,\n",
       " 0.579,\n",
       " 0.579,\n",
       " 0.579,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.58,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.581,\n",
       " 0.582,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.583,\n",
       " 0.584,\n",
       " 0.586,\n",
       " 0.586,\n",
       " 0.587,\n",
       " 0.588,\n",
       " 0.588,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.59,\n",
       " 0.591,\n",
       " 0.591,\n",
       " 0.593,\n",
       " 0.593,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.594,\n",
       " 0.595,\n",
       " 0.596,\n",
       " 0.596,\n",
       " 0.597,\n",
       " 0.598,\n",
       " 0.598,\n",
       " 0.6,\n",
       " 0.6,\n",
       " 0.6,\n",
       " 0.602,\n",
       " 0.602,\n",
       " 0.603,\n",
       " 0.604,\n",
       " 0.604,\n",
       " 0.604,\n",
       " 0.605,\n",
       " 0.606,\n",
       " 0.606,\n",
       " 0.608,\n",
       " 0.608,\n",
       " 0.608,\n",
       " 0.609,\n",
       " 0.609,\n",
       " 0.611,\n",
       " 0.612,\n",
       " 0.612,\n",
       " 0.613,\n",
       " 0.613,\n",
       " 0.613,\n",
       " 0.614,\n",
       " 0.615,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.616,\n",
       " 0.618,\n",
       " 0.618,\n",
       " 0.618,\n",
       " 0.619,\n",
       " 0.619,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.62,\n",
       " 0.621,\n",
       " 0.621,\n",
       " 0.621,\n",
       " 0.622,\n",
       " 0.623,\n",
       " 0.625,\n",
       " 0.625,\n",
       " 0.625,\n",
       " 0.627,\n",
       " 0.627,\n",
       " 0.628,\n",
       " 0.628,\n",
       " 0.629,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.63,\n",
       " 0.631,\n",
       " 0.631,\n",
       " 0.632,\n",
       " 0.632,\n",
       " 0.633,\n",
       " 0.633,\n",
       " 0.633,\n",
       " 0.634,\n",
       " 0.634,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.635,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.637,\n",
       " 0.638,\n",
       " 0.639,\n",
       " 0.643,\n",
       " 0.644,\n",
       " 0.644,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.646,\n",
       " 0.647,\n",
       " 0.647,\n",
       " 0.647,\n",
       " 0.648,\n",
       " 0.65,\n",
       " 0.65,\n",
       " 0.65,\n",
       " 0.652,\n",
       " 0.652,\n",
       " 0.654,\n",
       " 0.654,\n",
       " 0.654,\n",
       " 0.655,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.656,\n",
       " 0.657,\n",
       " 0.658,\n",
       " 0.658,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.659,\n",
       " 0.66,\n",
       " 0.661,\n",
       " 0.661,\n",
       " 0.662,\n",
       " 0.662,\n",
       " 0.663,\n",
       " 0.664,\n",
       " 0.664,\n",
       " 0.664,\n",
       " 0.668,\n",
       " 0.669,\n",
       " 0.669,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.67,\n",
       " 0.672,\n",
       " 0.672,\n",
       " 0.672,\n",
       " 0.673,\n",
       " 0.673,\n",
       " 0.674,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.675,\n",
       " 0.676,\n",
       " 0.676,\n",
       " 0.677,\n",
       " 0.678,\n",
       " 0.68,\n",
       " 0.68,\n",
       " 0.681,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.682,\n",
       " 0.683,\n",
       " 0.683,\n",
       " 0.683,\n",
       " 0.684,\n",
       " 0.684,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.685,\n",
       " 0.686,\n",
       " 0.686,\n",
       " 0.687,\n",
       " 0.688,\n",
       " 0.689,\n",
       " 0.689,\n",
       " 0.689,\n",
       " 0.69,\n",
       " 0.69,\n",
       " 0.691,\n",
       " 0.691,\n",
       " 0.692,\n",
       " 0.693,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.694,\n",
       " 0.695,\n",
       " 0.695,\n",
       " 0.695,\n",
       " 0.696,\n",
       " 0.696,\n",
       " 0.697,\n",
       " 0.698,\n",
       " 0.699,\n",
       " 0.699,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.7,\n",
       " 0.701,\n",
       " 0.701,\n",
       " 0.701,\n",
       " 0.702,\n",
       " 0.702,\n",
       " 0.703,\n",
       " 0.704,\n",
       " 0.704,\n",
       " 0.705,\n",
       " 0.705,\n",
       " 0.706,\n",
       " 0.707,\n",
       " 0.707,\n",
       " 0.707,\n",
       " 0.708,\n",
       " 0.709,\n",
       " 0.71,\n",
       " 0.71,\n",
       " 0.71,\n",
       " 0.711,\n",
       " 0.712,\n",
       " 0.712,\n",
       " 0.713,\n",
       " 0.713,\n",
       " 0.713,\n",
       " 0.714,\n",
       " 0.715,\n",
       " 0.716,\n",
       " 0.718,\n",
       " 0.719,\n",
       " 0.72,\n",
       " 0.72,\n",
       " 0.72,\n",
       " 0.721,\n",
       " 0.722,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.723,\n",
       " 0.725,\n",
       " 0.725,\n",
       " 0.727,\n",
       " 0.727,\n",
       " 0.728,\n",
       " 0.729,\n",
       " 0.729,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.73,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.731,\n",
       " 0.732,\n",
       " 0.733,\n",
       " 0.733,\n",
       " 0.734,\n",
       " 0.735,\n",
       " 0.735,\n",
       " 0.737,\n",
       " 0.738,\n",
       " 0.738,\n",
       " 0.738,\n",
       " 0.74,\n",
       " 0.74,\n",
       " 0.74,\n",
       " 0.741,\n",
       " 0.741,\n",
       " 0.741,\n",
       " 0.743,\n",
       " 0.746,\n",
       " 0.746,\n",
       " 0.747,\n",
       " 0.748,\n",
       " 0.749,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.75,\n",
       " 0.752,\n",
       " 0.752,\n",
       " 0.754,\n",
       " 0.756,\n",
       " 0.756,\n",
       " 0.757,\n",
       " 0.759,\n",
       " 0.759,\n",
       " 0.759,\n",
       " 0.76,\n",
       " 0.76,\n",
       " 0.761,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.762,\n",
       " 0.763,\n",
       " 0.764,\n",
       " 0.764,\n",
       " 0.765,\n",
       " 0.766,\n",
       " 0.768,\n",
       " 0.769,\n",
       " 0.77,\n",
       " 0.771,\n",
       " 0.771,\n",
       " 0.771,\n",
       " 0.772,\n",
       " 0.772,\n",
       " 0.773,\n",
       " 0.774,\n",
       " 0.774,\n",
       " 0.775,\n",
       " 0.777,\n",
       " 0.777,\n",
       " 0.779,\n",
       " 0.78,\n",
       " 0.78,\n",
       " 0.78,\n",
       " 0.781,\n",
       " 0.783,\n",
       " 0.783,\n",
       " 0.785,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.786,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.788,\n",
       " 0.79,\n",
       " 0.79,\n",
       " 0.79,\n",
       " 0.792,\n",
       " 0.792,\n",
       " 0.792,\n",
       " 0.795,\n",
       " 0.795,\n",
       " 0.795,\n",
       " 0.797,\n",
       " 0.797,\n",
       " 0.798,\n",
       " 0.799,\n",
       " 0.8,\n",
       " 0.801,\n",
       " 0.802,\n",
       " 0.803,\n",
       " 0.804,\n",
       " 0.804,\n",
       " 0.804,\n",
       " 0.806,\n",
       " 0.806,\n",
       " 0.808,\n",
       " 0.808,\n",
       " 0.808,\n",
       " 0.809,\n",
       " 0.81,\n",
       " 0.81,\n",
       " 0.811,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.813,\n",
       " 0.814,\n",
       " 0.814,\n",
       " 0.816,\n",
       " 0.817,\n",
       " 0.817,\n",
       " 0.817,\n",
       " 0.821,\n",
       " 0.821,\n",
       " 0.821,\n",
       " 0.823,\n",
       " 0.823,\n",
       " 0.824,\n",
       " 0.825,\n",
       " 0.825,\n",
       " 0.825,\n",
       " 0.826,\n",
       " 0.827,\n",
       " 0.827,\n",
       " 0.828,\n",
       " 0.828,\n",
       " 0.828,\n",
       " 0.83,\n",
       " 0.83,\n",
       " 0.83,\n",
       " 0.831,\n",
       " 0.831,\n",
       " 0.831,\n",
       " 0.832,\n",
       " 0.832,\n",
       " 0.832,\n",
       " 0.833,\n",
       " 0.833,\n",
       " 0.834,\n",
       " 0.835,\n",
       " 0.835,\n",
       " 0.836,\n",
       " 0.836,\n",
       " 0.837,\n",
       " 0.838,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.839,\n",
       " 0.84,\n",
       " 0.841,\n",
       " 0.842,\n",
       " 0.842,\n",
       " 0.842,\n",
       " 0.843,\n",
       " 0.843,\n",
       " 0.844,\n",
       " 0.844,\n",
       " 0.844,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.845,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.846,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.847,\n",
       " 0.848,\n",
       " 0.849,\n",
       " 0.849,\n",
       " 0.85,\n",
       " 0.85,\n",
       " 0.85,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.851,\n",
       " 0.852,\n",
       " 0.853,\n",
       " 0.853,\n",
       " 0.854,\n",
       " 0.854,\n",
       " 0.854,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.855,\n",
       " 0.856,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.857,\n",
       " 0.858,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.859,\n",
       " 0.861,\n",
       " 0.862,\n",
       " 0.863,\n",
       " 0.863,\n",
       " 0.863,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.864,\n",
       " 0.865,\n",
       " 0.865,\n",
       " 0.865,\n",
       " 0.866,\n",
       " 0.867,\n",
       " 0.867,\n",
       " 0.868,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.869,\n",
       " 0.87,\n",
       " 0.87,\n",
       " 0.871,\n",
       " 0.871,\n",
       " 0.872,\n",
       " 0.872,\n",
       " 0.872,\n",
       " 0.873,\n",
       " 0.874,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.875,\n",
       " 0.876,\n",
       " 0.876,\n",
       " 0.877,\n",
       " 0.877,\n",
       " 0.878,\n",
       " 0.878,\n",
       " 0.878,\n",
       " 0.879,\n",
       " 0.879,\n",
       " 0.879,\n",
       " 0.88,\n",
       " 0.88,\n",
       " 0.881,\n",
       " 0.881,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.882,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.883,\n",
       " 0.884,\n",
       " 0.885,\n",
       " 0.885,\n",
       " 0.886,\n",
       " 0.887,\n",
       " 0.887,\n",
       " 0.887,\n",
       " 0.888,\n",
       " 0.888,\n",
       " 0.888,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.889,\n",
       " 0.89,\n",
       " 0.891,\n",
       " 0.892,\n",
       " 0.892,\n",
       " 0.892,\n",
       " 0.893,\n",
       " 0.893,\n",
       " 0.894,\n",
       " 0.895,\n",
       " 0.896,\n",
       " 0.896,\n",
       " 0.897,\n",
       " 0.897,\n",
       " 0.898,\n",
       " 0.898,\n",
       " 0.899,\n",
       " 0.9,\n",
       " 0.9,\n",
       " 0.9,\n",
       " 0.901,\n",
       " 0.901,\n",
       " 0.901,\n",
       " 0.902,\n",
       " 0.903,\n",
       " 0.903,\n",
       " 0.904,\n",
       " 0.904,\n",
       " 0.904,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.905,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.906,\n",
       " 0.907,\n",
       " 0.907,\n",
       " 0.908,\n",
       " 0.911,\n",
       " 0.911,\n",
       " 0.912,\n",
       " 0.914,\n",
       " 0.915,\n",
       " 0.915,\n",
       " 0.916,\n",
       " 0.916,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.917,\n",
       " 0.918,\n",
       " 0.918,\n",
       " 0.918,\n",
       " 0.919,\n",
       " 0.919,\n",
       " 0.919,\n",
       " 0.92,\n",
       " 0.92,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.922,\n",
       " 0.924,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.925,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.926,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.927,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.928,\n",
       " 0.929,\n",
       " 0.93,\n",
       " 0.93,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.931,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.932,\n",
       " 0.933,\n",
       " 0.933,\n",
       " 0.933,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.934,\n",
       " 0.935,\n",
       " 0.935,\n",
       " 0.935,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.936,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.938,\n",
       " 0.939,\n",
       " 0.939,\n",
       " 0.94,\n",
       " 0.94,\n",
       " 0.942,\n",
       " 0.942,\n",
       " 0.943,\n",
       " 0.943,\n",
       " 0.944,\n",
       " 0.944,\n",
       " 0.944,\n",
       " 0.945,\n",
       " 0.945,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.946,\n",
       " 0.947,\n",
       " 0.947,\n",
       " 0.948,\n",
       " 0.948,\n",
       " 0.948,\n",
       " 0.949,\n",
       " 0.949,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.95,\n",
       " 0.951,\n",
       " 0.952,\n",
       " 0.952,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.953,\n",
       " 0.954,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.955,\n",
       " 0.956,\n",
       " 0.957,\n",
       " 0.957,\n",
       " 0.957,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.958,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.96,\n",
       " 0.961,\n",
       " 0.961,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.962,\n",
       " 0.963,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.964,\n",
       " 0.965,\n",
       " 0.965,\n",
       " 0.965,\n",
       " 0.966,\n",
       " 0.966,\n",
       " 0.966,\n",
       " 0.967,\n",
       " 0.967,\n",
       " 0.967,\n",
       " 0.968,\n",
       " 0.968,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.969,\n",
       " 0.97,\n",
       " 0.971,\n",
       " 0.972,\n",
       " 0.972,\n",
       " 0.973,\n",
       " 0.973,\n",
       " 0.973,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.974,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.976,\n",
       " 0.977,\n",
       " 0.977,\n",
       " 0.978,\n",
       " 0.978,\n",
       " 0.978,\n",
       " 0.979,\n",
       " 0.979,\n",
       " ...]"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sorted(Ytest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.51384887, 0.46566247, 2.2567733 , ..., 2.11885803, 1.76968187,\n",
       "       0.73219077])"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2477, 4318, 4930, ..., 2806, 2786, 3736], dtype=int64)"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argsort(Ytest) #得到排序之后的索引序列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.14999"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Ytest[2477] #索引为2477的真实值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5948, 3374,  824, ..., 4451, 4979, 5796], dtype=int64)"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argsort(y_test_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0539979577166108"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_pred[2477]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.05399796, 0.19034538, 1.92338573, ..., 3.43677069, 2.23272962,\n",
       "       5.19172028])"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_pred[np.argsort(Ytest)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#将排序好的数据再进行绘图\n",
    "plt.scatter(range(len(Ytest)),sorted(Ytest),s=2,label='True')\n",
    "plt.scatter(range(len(Ytest)),y_test_pred[np.argsort(Ytest)],s=2,c='r',label='Predict',alpha=0.3)\n",
    "\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['MedInc',\n",
       " 'HouseAge',\n",
       " 'AveRooms',\n",
       " 'AveBedrms',\n",
       " 'Population',\n",
       " 'AveOccup',\n",
       " 'Latitude',\n",
       " 'Longitude']"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "housevalue.feature_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.3252</td>\n",
       "      <td>41.0</td>\n",
       "      <td>6.984127</td>\n",
       "      <td>1.023810</td>\n",
       "      <td>322.0</td>\n",
       "      <td>2.555556</td>\n",
       "      <td>37.88</td>\n",
       "      <td>-122.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8.3014</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6.238137</td>\n",
       "      <td>0.971880</td>\n",
       "      <td>2401.0</td>\n",
       "      <td>2.109842</td>\n",
       "      <td>37.86</td>\n",
       "      <td>-122.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7.2574</td>\n",
       "      <td>52.0</td>\n",
       "      <td>8.288136</td>\n",
       "      <td>1.073446</td>\n",
       "      <td>496.0</td>\n",
       "      <td>2.802260</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5.6431</td>\n",
       "      <td>52.0</td>\n",
       "      <td>5.817352</td>\n",
       "      <td>1.073059</td>\n",
       "      <td>558.0</td>\n",
       "      <td>2.547945</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.8462</td>\n",
       "      <td>52.0</td>\n",
       "      <td>6.281853</td>\n",
       "      <td>1.081081</td>\n",
       "      <td>565.0</td>\n",
       "      <td>2.181467</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20635</th>\n",
       "      <td>1.5603</td>\n",
       "      <td>25.0</td>\n",
       "      <td>5.045455</td>\n",
       "      <td>1.133333</td>\n",
       "      <td>845.0</td>\n",
       "      <td>2.560606</td>\n",
       "      <td>39.48</td>\n",
       "      <td>-121.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20636</th>\n",
       "      <td>2.5568</td>\n",
       "      <td>18.0</td>\n",
       "      <td>6.114035</td>\n",
       "      <td>1.315789</td>\n",
       "      <td>356.0</td>\n",
       "      <td>3.122807</td>\n",
       "      <td>39.49</td>\n",
       "      <td>-121.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20637</th>\n",
       "      <td>1.7000</td>\n",
       "      <td>17.0</td>\n",
       "      <td>5.205543</td>\n",
       "      <td>1.120092</td>\n",
       "      <td>1007.0</td>\n",
       "      <td>2.325635</td>\n",
       "      <td>39.43</td>\n",
       "      <td>-121.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20638</th>\n",
       "      <td>1.8672</td>\n",
       "      <td>18.0</td>\n",
       "      <td>5.329513</td>\n",
       "      <td>1.171920</td>\n",
       "      <td>741.0</td>\n",
       "      <td>2.123209</td>\n",
       "      <td>39.43</td>\n",
       "      <td>-121.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20639</th>\n",
       "      <td>2.3886</td>\n",
       "      <td>16.0</td>\n",
       "      <td>5.254717</td>\n",
       "      <td>1.162264</td>\n",
       "      <td>1387.0</td>\n",
       "      <td>2.616981</td>\n",
       "      <td>39.37</td>\n",
       "      <td>-121.24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20640 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "0      8.3252      41.0  6.984127   1.023810       322.0  2.555556     37.88   \n",
       "1      8.3014      21.0  6.238137   0.971880      2401.0  2.109842     37.86   \n",
       "2      7.2574      52.0  8.288136   1.073446       496.0  2.802260     37.85   \n",
       "3      5.6431      52.0  5.817352   1.073059       558.0  2.547945     37.85   \n",
       "4      3.8462      52.0  6.281853   1.081081       565.0  2.181467     37.85   \n",
       "...       ...       ...       ...        ...         ...       ...       ...   \n",
       "20635  1.5603      25.0  5.045455   1.133333       845.0  2.560606     39.48   \n",
       "20636  2.5568      18.0  6.114035   1.315789       356.0  3.122807     39.49   \n",
       "20637  1.7000      17.0  5.205543   1.120092      1007.0  2.325635     39.43   \n",
       "20638  1.8672      18.0  5.329513   1.171920       741.0  2.123209     39.43   \n",
       "20639  2.3886      16.0  5.254717   1.162264      1387.0  2.616981     39.37   \n",
       "\n",
       "       Longitude  \n",
       "0        -122.23  \n",
       "1        -122.22  \n",
       "2        -122.24  \n",
       "3        -122.25  \n",
       "4        -122.25  \n",
       "...          ...  \n",
       "20635    -121.09  \n",
       "20636    -121.21  \n",
       "20637    -121.22  \n",
       "20638    -121.32  \n",
       "20639    -121.24  \n",
       "\n",
       "[20640 rows x 8 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "X.columns = ['住户的收入中位数','房屋使用年代的中位数','该街区平均的房间数目',\n",
    "             '该街区平均的卧室数目','街区人口','平均入住率','街区的纬度','街区的经度']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "poly = PolynomialFeatures(degree=2).fit(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['1',\n",
       " '住户的收入中位数',\n",
       " '房屋使用年代的中位数',\n",
       " '该街区平均的房间数目',\n",
       " '该街区平均的卧室数目',\n",
       " '街区人口',\n",
       " '平均入住率',\n",
       " '街区的纬度',\n",
       " '街区的经度',\n",
       " '住户的收入中位数^2',\n",
       " '住户的收入中位数 房屋使用年代的中位数',\n",
       " '住户的收入中位数 该街区平均的房间数目',\n",
       " '住户的收入中位数 该街区平均的卧室数目',\n",
       " '住户的收入中位数 街区人口',\n",
       " '住户的收入中位数 平均入住率',\n",
       " '住户的收入中位数 街区的纬度',\n",
       " '住户的收入中位数 街区的经度',\n",
       " '房屋使用年代的中位数^2',\n",
       " '房屋使用年代的中位数 该街区平均的房间数目',\n",
       " '房屋使用年代的中位数 该街区平均的卧室数目',\n",
       " '房屋使用年代的中位数 街区人口',\n",
       " '房屋使用年代的中位数 平均入住率',\n",
       " '房屋使用年代的中位数 街区的纬度',\n",
       " '房屋使用年代的中位数 街区的经度',\n",
       " '该街区平均的房间数目^2',\n",
       " '该街区平均的房间数目 该街区平均的卧室数目',\n",
       " '该街区平均的房间数目 街区人口',\n",
       " '该街区平均的房间数目 平均入住率',\n",
       " '该街区平均的房间数目 街区的纬度',\n",
       " '该街区平均的房间数目 街区的经度',\n",
       " '该街区平均的卧室数目^2',\n",
       " '该街区平均的卧室数目 街区人口',\n",
       " '该街区平均的卧室数目 平均入住率',\n",
       " '该街区平均的卧室数目 街区的纬度',\n",
       " '该街区平均的卧室数目 街区的经度',\n",
       " '街区人口^2',\n",
       " '街区人口 平均入住率',\n",
       " '街区人口 街区的纬度',\n",
       " '街区人口 街区的经度',\n",
       " '平均入住率^2',\n",
       " '平均入住率 街区的纬度',\n",
       " '平均入住率 街区的经度',\n",
       " '街区的纬度^2',\n",
       " '街区的纬度 街区的经度',\n",
       " '街区的经度^2']"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly.get_feature_names(X.columns)#通过多项式构造列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_ = poly.transform(X)  #多项式变化后"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.00000000e+00,  8.32520000e+00,  4.10000000e+01, ...,\n",
       "         1.43489440e+03, -4.63007240e+03,  1.49401729e+04],\n",
       "       [ 1.00000000e+00,  8.30140000e+00,  2.10000000e+01, ...,\n",
       "         1.43337960e+03, -4.62724920e+03,  1.49377284e+04],\n",
       "       [ 1.00000000e+00,  7.25740000e+00,  5.20000000e+01, ...,\n",
       "         1.43262250e+03, -4.62678400e+03,  1.49426176e+04],\n",
       "       ...,\n",
       "       [ 1.00000000e+00,  1.70000000e+00,  1.70000000e+01, ...,\n",
       "         1.55472490e+03, -4.77970460e+03,  1.46942884e+04],\n",
       "       [ 1.00000000e+00,  1.86720000e+00,  1.80000000e+01, ...,\n",
       "         1.55472490e+03, -4.78364760e+03,  1.47185424e+04],\n",
       "       [ 1.00000000e+00,  2.38860000e+00,  1.60000000e+01, ...,\n",
       "         1.54999690e+03, -4.77321880e+03,  1.46991376e+04]])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "reg = LinearRegression().fit(X_,y)#使用转化后的数据进行建模训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 5.91954762e-08, -1.12430256e+01, -8.48898563e-01,  6.44105929e+00,\n",
       "       -3.15913304e+01,  4.06090700e-04,  1.00386233e+00,  8.70568191e+00,\n",
       "        5.88063274e+00, -3.13081233e-02,  1.85994740e-03,  4.33020472e-02,\n",
       "       -1.86142303e-01,  5.72831313e-05, -2.59019465e-03, -1.52505718e-01,\n",
       "       -1.44242944e-01,  2.11725326e-04, -1.26218998e-03,  1.06115052e-02,\n",
       "        2.81885338e-06, -1.81716944e-03, -1.00690373e-02, -9.99950188e-03,\n",
       "        7.26947725e-03, -6.89064337e-02, -6.82365584e-05,  2.68878839e-02,\n",
       "        8.75089939e-02,  8.22890389e-02,  1.60180946e-01,  5.14263965e-04,\n",
       "       -8.71911391e-02, -4.37043030e-01, -4.04150606e-01,  2.73779092e-09,\n",
       "        1.91426766e-05,  2.29529836e-05,  1.46567756e-05,  8.71560964e-05,\n",
       "        2.13344592e-02,  1.62412938e-02,  6.18867358e-02,  1.08107173e-01,\n",
       "        3.99077350e-02])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reg.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('1', 5.919547622013033e-08),\n",
       " ('住户的收入中位数', -11.24302557462409),\n",
       " ('房屋使用年代的中位数', -0.8488985630544302),\n",
       " ('该街区平均的房间数目', 6.441059285824681),\n",
       " ('该街区平均的卧室数目', -31.59133038837795),\n",
       " ('街区人口', 0.0004060907004548096),\n",
       " ('平均入住率', 1.0038623267368598),\n",
       " ('街区的纬度', 8.705681906512265),\n",
       " ('街区的经度', 5.880632740950536),\n",
       " ('住户的收入中位数^2', -0.031308123295653814),\n",
       " ('住户的收入中位数 房屋使用年代的中位数', 0.0018599473971959836),\n",
       " ('住户的收入中位数 该街区平均的房间数目', 0.04330204720647667),\n",
       " ('住户的收入中位数 该街区平均的卧室数目', -0.18614230286022418),\n",
       " ('住户的收入中位数 街区人口', 5.728313132329231e-05),\n",
       " ('住户的收入中位数 平均入住率', -0.002590194649331616),\n",
       " ('住户的收入中位数 街区的纬度', -0.15250571828258908),\n",
       " ('住户的收入中位数 街区的经度', -0.14424294425079082),\n",
       " ('房屋使用年代的中位数^2', 0.00021172532576618083),\n",
       " ('房屋使用年代的中位数 该街区平均的房间数目', -0.0012621899769862225),\n",
       " ('房屋使用年代的中位数 该街区平均的卧室数目', 0.010611505200531843),\n",
       " ('房屋使用年代的中位数 街区人口', 2.818853379960247e-06),\n",
       " ('房屋使用年代的中位数 平均入住率', -0.0018171694411520457),\n",
       " ('房屋使用年代的中位数 街区的纬度', -0.010069037338454228),\n",
       " ('房屋使用年代的中位数 街区的经度', -0.00999950188065276),\n",
       " ('该街区平均的房间数目^2', 0.007269477252714056),\n",
       " ('该街区平均的房间数目 该街区平均的卧室数目', -0.0689064336889457),\n",
       " ('该街区平均的房间数目 街区人口', -6.823655839335575e-05),\n",
       " ('该街区平均的房间数目 平均入住率', 0.02688788388649532),\n",
       " ('该街区平均的房间数目 街区的纬度', 0.08750899386040001),\n",
       " ('该街区平均的房间数目 街区的经度', 0.08228903893629276),\n",
       " ('该街区平均的卧室数目^2', 0.1601809459853239),\n",
       " ('该街区平均的卧室数目 街区人口', 0.0005142639649729885),\n",
       " ('该街区平均的卧室数目 平均入住率', -0.08719113908251339),\n",
       " ('该街区平均的卧室数目 街区的纬度', -0.4370430295730081),\n",
       " ('该街区平均的卧室数目 街区的经度', -0.4041506064429531),\n",
       " ('街区人口^2', 2.737790919310526e-09),\n",
       " ('街区人口 平均入住率', 1.9142676560849866e-05),\n",
       " ('街区人口 街区的纬度', 2.2952983608247036e-05),\n",
       " ('街区人口 街区的经度', 1.4656775581091295e-05),\n",
       " ('平均入住率^2', 8.715609635939173e-05),\n",
       " ('平均入住率 街区的纬度', 0.02133445921833345),\n",
       " ('平均入住率 街区的经度', 0.016241293829958238),\n",
       " ('街区的纬度^2', 0.061886735759100135),\n",
       " ('街区的纬度 街区的经度', 0.10810717326205625),\n",
       " ('街区的经度^2', 0.039907735048536896)]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[*zip(poly.get_feature_names(X.columns),reg.coef_)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "coeff = pd.DataFrame([poly.get_feature_names(X.columns),reg.coef_.tolist()]).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>5.91955e-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>住户的收入中位数</td>\n",
       "      <td>-11.243</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>房屋使用年代的中位数</td>\n",
       "      <td>-0.848899</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>该街区平均的房间数目</td>\n",
       "      <td>6.44106</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>该街区平均的卧室数目</td>\n",
       "      <td>-31.5913</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>街区人口</td>\n",
       "      <td>0.000406091</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>平均入住率</td>\n",
       "      <td>1.00386</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>街区的纬度</td>\n",
       "      <td>8.70568</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>街区的经度</td>\n",
       "      <td>5.88063</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>住户的收入中位数^2</td>\n",
       "      <td>-0.0313081</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>住户的收入中位数 房屋使用年代的中位数</td>\n",
       "      <td>0.00185995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>住户的收入中位数 该街区平均的房间数目</td>\n",
       "      <td>0.043302</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>住户的收入中位数 该街区平均的卧室数目</td>\n",
       "      <td>-0.186142</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>住户的收入中位数 街区人口</td>\n",
       "      <td>5.72831e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>住户的收入中位数 平均入住率</td>\n",
       "      <td>-0.00259019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>住户的收入中位数 街区的纬度</td>\n",
       "      <td>-0.152506</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>住户的收入中位数 街区的经度</td>\n",
       "      <td>-0.144243</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>房屋使用年代的中位数^2</td>\n",
       "      <td>0.000211725</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>房屋使用年代的中位数 该街区平均的房间数目</td>\n",
       "      <td>-0.00126219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>房屋使用年代的中位数 该街区平均的卧室数目</td>\n",
       "      <td>0.0106115</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>房屋使用年代的中位数 街区人口</td>\n",
       "      <td>2.81885e-06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>房屋使用年代的中位数 平均入住率</td>\n",
       "      <td>-0.00181717</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>房屋使用年代的中位数 街区的纬度</td>\n",
       "      <td>-0.010069</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>房屋使用年代的中位数 街区的经度</td>\n",
       "      <td>-0.0099995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>该街区平均的房间数目^2</td>\n",
       "      <td>0.00726948</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>该街区平均的房间数目 该街区平均的卧室数目</td>\n",
       "      <td>-0.0689064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>该街区平均的房间数目 街区人口</td>\n",
       "      <td>-6.82366e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>该街区平均的房间数目 平均入住率</td>\n",
       "      <td>0.0268879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>该街区平均的房间数目 街区的纬度</td>\n",
       "      <td>0.087509</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>该街区平均的房间数目 街区的经度</td>\n",
       "      <td>0.082289</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>该街区平均的卧室数目^2</td>\n",
       "      <td>0.160181</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>该街区平均的卧室数目 街区人口</td>\n",
       "      <td>0.000514264</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>该街区平均的卧室数目 平均入住率</td>\n",
       "      <td>-0.0871911</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>该街区平均的卧室数目 街区的纬度</td>\n",
       "      <td>-0.437043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>该街区平均的卧室数目 街区的经度</td>\n",
       "      <td>-0.404151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>街区人口^2</td>\n",
       "      <td>2.73779e-09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>街区人口 平均入住率</td>\n",
       "      <td>1.91427e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>街区人口 街区的纬度</td>\n",
       "      <td>2.2953e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>街区人口 街区的经度</td>\n",
       "      <td>1.46568e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>平均入住率^2</td>\n",
       "      <td>8.71561e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>平均入住率 街区的纬度</td>\n",
       "      <td>0.0213345</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>平均入住率 街区的经度</td>\n",
       "      <td>0.0162413</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>街区的纬度^2</td>\n",
       "      <td>0.0618867</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>街区的纬度 街区的经度</td>\n",
       "      <td>0.108107</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>街区的经度^2</td>\n",
       "      <td>0.0399077</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        0            1\n",
       "0                       1  5.91955e-08\n",
       "1                住户的收入中位数      -11.243\n",
       "2              房屋使用年代的中位数    -0.848899\n",
       "3              该街区平均的房间数目      6.44106\n",
       "4              该街区平均的卧室数目     -31.5913\n",
       "5                    街区人口  0.000406091\n",
       "6                   平均入住率      1.00386\n",
       "7                   街区的纬度      8.70568\n",
       "8                   街区的经度      5.88063\n",
       "9              住户的收入中位数^2   -0.0313081\n",
       "10    住户的收入中位数 房屋使用年代的中位数   0.00185995\n",
       "11    住户的收入中位数 该街区平均的房间数目     0.043302\n",
       "12    住户的收入中位数 该街区平均的卧室数目    -0.186142\n",
       "13          住户的收入中位数 街区人口  5.72831e-05\n",
       "14         住户的收入中位数 平均入住率  -0.00259019\n",
       "15         住户的收入中位数 街区的纬度    -0.152506\n",
       "16         住户的收入中位数 街区的经度    -0.144243\n",
       "17           房屋使用年代的中位数^2  0.000211725\n",
       "18  房屋使用年代的中位数 该街区平均的房间数目  -0.00126219\n",
       "19  房屋使用年代的中位数 该街区平均的卧室数目    0.0106115\n",
       "20        房屋使用年代的中位数 街区人口  2.81885e-06\n",
       "21       房屋使用年代的中位数 平均入住率  -0.00181717\n",
       "22       房屋使用年代的中位数 街区的纬度    -0.010069\n",
       "23       房屋使用年代的中位数 街区的经度   -0.0099995\n",
       "24           该街区平均的房间数目^2   0.00726948\n",
       "25  该街区平均的房间数目 该街区平均的卧室数目   -0.0689064\n",
       "26        该街区平均的房间数目 街区人口 -6.82366e-05\n",
       "27       该街区平均的房间数目 平均入住率    0.0268879\n",
       "28       该街区平均的房间数目 街区的纬度     0.087509\n",
       "29       该街区平均的房间数目 街区的经度     0.082289\n",
       "30           该街区平均的卧室数目^2     0.160181\n",
       "31        该街区平均的卧室数目 街区人口  0.000514264\n",
       "32       该街区平均的卧室数目 平均入住率   -0.0871911\n",
       "33       该街区平均的卧室数目 街区的纬度    -0.437043\n",
       "34       该街区平均的卧室数目 街区的经度    -0.404151\n",
       "35                 街区人口^2  2.73779e-09\n",
       "36             街区人口 平均入住率  1.91427e-05\n",
       "37             街区人口 街区的纬度   2.2953e-05\n",
       "38             街区人口 街区的经度  1.46568e-05\n",
       "39                平均入住率^2  8.71561e-05\n",
       "40            平均入住率 街区的纬度    0.0213345\n",
       "41            平均入住率 街区的经度    0.0162413\n",
       "42                街区的纬度^2    0.0618867\n",
       "43            街区的纬度 街区的经度     0.108107\n",
       "44                街区的经度^2    0.0399077"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "coeff"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 与变换前的模型拟合效果进行比对"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "poly =  PolynomialFeatures(degree=4).fit(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_ = poly.transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.00000000e+00,  8.32520000e+00,  4.10000000e+01, ...,\n",
       "         2.14375704e+07, -6.91740822e+07,  2.23208766e+08],\n",
       "       [ 1.00000000e+00,  8.30140000e+00,  2.10000000e+01, ...,\n",
       "         2.14114352e+07, -6.91205918e+07,  2.23135730e+08],\n",
       "       [ 1.00000000e+00,  7.25740000e+00,  5.20000000e+01, ...,\n",
       "         2.14071302e+07, -6.91362640e+07,  2.23281821e+08],\n",
       "       ...,\n",
       "       [ 1.00000000e+00,  1.70000000e+00,  1.70000000e+01, ...,\n",
       "         2.28455761e+07, -7.02343579e+07,  2.15922112e+08],\n",
       "       [ 1.00000000e+00,  1.86720000e+00,  1.80000000e+01, ...,\n",
       "         2.28832844e+07, -7.04083200e+07,  2.16635490e+08],\n",
       "       [ 1.00000000e+00,  2.38860000e+00,  1.60000000e+01, ...,\n",
       "         2.27836177e+07, -7.01621999e+07,  2.16064646e+08]])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6062326851998051"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr = LinearRegression().fit(X,y)\n",
    "lr.score(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.745313897131279"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr1 = LinearRegression().fit(X_,y)\n",
    "lr1.score(X_,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.6"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "311.634px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
